The present invention relates generally to communication protocols, and more specifically to a system for providing reliable delivery of status information for multiple sets of data units in a single status report packet.
In many existing applications, the reliable transmission of data from a transmitting device to one or more receiving devices requires that feedback information be provided from the receiver(s) to the transmitter, in order to acknowledge receipt or request re-transmission of the data. It is often desirable to minimize the costs associated with delivering such feedback information. For example, in many types of networks, including communication satellite based networks, large amounts of data may be transmitted through high-speed channels to potentially large numbers of receiving devices. However, the feedback information indicating the delivery status of the transmitted data at the receiving devices is sometimes not sent to the transmitting device using the high speed channels. Instead, a lower bandwidth “back-channel” is sometimes employed to convey acknowledgements to the transmitter. A back-channel used to deliver feedback information from receiving devices to a transmitting device is also often less reliable than the channels used for carrying data from the transmitting device to the receiving devices.
Under such circumstances, it would be desirable to ensure that feedback information regarding the delivery of data to receiving devices is provided to the transmitting device in a way that reduces the need for retransmission of such feedback data, and without using excessive amounts of bandwidth. Otherwise, the performance of transmitting devices may be adversely impacted while they await the delivery of feedback information regarding data they have previously transmitted.
In some existing systems, a separate status packet has been required to communicate the delivery status of each transmitted data block. In other systems, such as the Transport Control Protocol (TCP), where multiple data blocks were received successfully, a single acknowledgement packet may be used to indicate the correct receipt of those data blocks.
For the above reasons, it would be desirable to have a new system for reliably and efficiently providing a rich set of delivery status information from potentially large numbers of receiving devices to a transmitting device.